package com.hyt.it.ogt.kq.common.gov.constant.examsys.gce;

import lombok.Getter;

/**
 * <p>
 * GCE考试系统请求返回结果枚举(GCE)
 * </p>
 *
 * @author huangyh
 * @since 2021-07-19
 */
@Getter
public enum GCEResultEnum {

    /**
     * 通过考点或考场编码查询考点或考场注册信息
     */
    GET_REGISTER_INFO_FOUND(0, "找到考点或考场信息"),
    GET_REGISTER_INFO_NOT_FOUND(1, "未找到考点或考场信息"),

    /**
     * 注册考场信息
     */
    NEW_REGISTER_ROOM_SUCCESS(0, "注册成功"),
    NEW_REGISTER_ROOM_REGISTERED(1, "当前计算机已经注册了其他考场"),
    NEW_REGISTER_ROOM_REGISTERED_BY_ROOM(2, "当前考场已经被其他计算机注册"),
    NEW_REGISTER_ROOM_NOT_FOUND(3, "未找到相应考场，注册失败"),
    NEW_REGISTER_ROOM_EXCEPTION(4, "程序异常"),
    NEW_REGISTER_ROOM_INVALID(5, "电脑已报废或无效"),
    NEW_REGISTER_ROOM_VERSION_TOO_LOW(6, "考试系统软件版本过低"),

    /**
     * 获取已启用的考试项目列表
     */
    GET_EXAM_TASK_LIST_SUCCESS(0, "获取成功"),
    GET_EXAM_TASK_LIST_FAILED(1, "获取失败"),

    /**
     * 获取考场重考考务数据包
     */
    GET_RESIT_ROOM_PACKAGE_SUCCESS(0, "成功"),
    GET_RESIT_ROOM_PACKAGE_NOT_FOUND(1, "未有重考考务包"),
    GET_RESIT_ROOM_PACKAGE_DOWNLOADED(2, "已获取过重考考务包"),
    GET_RESIT_ROOM_PACKAGE_INVALID(3, "不在考试数据包下载有效期范围内，获取失败"),

    /**
     * 重考考务包下载成功后更新重考考务包下载状态
     */
    UPDATE_RESIT_ROOM_PACKAGE_STATE_SUCCESS(1, "重考考务包下载成功后更新重考考务包下载状态成功"),
    UPDATE_RESIT_ROOM_PACKAGE_STATE_FAILED(2, "重考考务包下载成功后更新重考考务包下载状态失败"),

    /**
     * 下载基础包
     */
    GET_BASE_PACKAGE_CAN_DOWNLOAD(1, "可以下载"),
    GET_BASE_PACKAGE_DOWNLOADED(2, "已下载过"),
    GET_BASE_PACKAGE_INVALID(3, "不在基础包有效期范围内，不能下载"),
    GET_BASE_PACKAGE_OTHER(4, "下载考试协议其他错误"),

    /**
     * 获取考场考务数据包
     */
    GET_ROOM_PACKAGE_SUCCESS(0, "成功"),
    GET_ROOM_PACKAGE_WITHOUT(1, "未有考务包"),
    GET_ROOM_PACKAGE_HAVE_GOT(2, "已获取过数据"),
    GET_ROOM_PACKAGE_OVERDUE(3, "不在考试数据包下载有效期范围内，获取失败"),

    /**
     * 考务包状态
     */
    ROOM_PACKAGE_USABLE(0, "可以下载"),
    ROOM_PACKAGE_UNUSABLE(1, "不可以下载"),
    ROOM_PACKAGE_HAVE_GOT(2, "已经下载过"),

    /**
     * 获取试卷包
     */
    GET_PAPER_DATA_SUCCESS(0, "获取试卷包成功"),
    GET_PAPER_DATA_WITHOUT(1, "未有试卷包，获取失败"),
    GET_PAPER_DATA_DOWNLOADED(2, "已获取过数据"),
    GET_PAPER_DATA_INVALID(3, "不在试卷包下载有效期范围内，获取失败"),

    /**
     * 测试考试系统能否正常连接考务系统
     */
    CHECK_EXAM_SYSTEM_CONNECTION_SUCCESS(1, "连接成功"),

    /**
     * 获取服务器时间
     */
    GET_SERVER_TIME_SUCCESS(0, "获取服务器时间成功"),
    GET_SERVER_TIME_FAILED(1, "获取服务器时间失败"),

    /**
     * 校验是否可以上传考试结果，并获取上传路径
     */
    GET_RESULT_UPLOAD_PATH_SUCCESS(1, "可以上传"),
    GET_RESULT_UPLOAD_PATH_UPLOADED(2, "已上传过"),
    GET_RESULT_UPLOAD_PATH_INVALID(3, "不在考试结果上传有效期范围内，不能上传"),
    GET_RESULT_UPLOAD_PATH_OTHER(4, "其他"),

    /**
     * 获取试卷授权码
     */
    GET_PAPER_AUTHORIZATION_CODE_SUCCESS(0, "获取试卷授权码成功"),
    GET_PAPER_AUTHORIZATION_CODE_WITHOUT(1, "未有试卷授权码，获取失败"),
    GET_PAPER_AUTHORIZATION_CODE_DOWNLOADED(2, "已获取过数据"),
    GET_PAPER_AUTHORIZATION_CODE_INVALID(3, "不在试卷授权码下载有效期范围内，获取失败"),
    GET_PAPER_AUTHORIZATION_CODE_DELETED(4, "原试卷在考务中已被删除，不能再下载试卷授权码"),
    GET_PAPER_AUTHORIZATION_CODE_PARTIAL_DELETED(5, "当多份试卷时，其中有部份试卷已被删除，则只返回没有被删除的试卷，已被删除的返回5"),

    /**
     * 上报考场考试过程操作数据状态
     */
    UPDATE_EXAM_MONITOR_SUCCESS(1, "上报考场考试过程操作数据状态成功"),
    UPDATE_EXAM_MONITOR_FAILED(2, "上报考场考试过程操作数据状态失败"),

    /**
     * 考试文件包上传
     */
    UPLOAD_SUCCESS(0, "考试文件包上传成功"),
    UPLOAD_SUCCESS_MESSAGE(0, "Successed"),
    UPLOAD_FAILED(1, "考试文件包上传失败"),
    UPLOAD_FAILED_MESSAGE(1, "Failed"),

    /**
     * 上传考试结果成功后通知考务更新上传状态
     */
    UPDATE_RESULT_STATE_SUCCESS(1, "上传考试结果成功后通知考务更新上传状态成功"),
    UPDATE_RESULT_STATE_FAILED(2, "上传考试结果成功后通知考务更新上传状态失败"),

    /**
     * 考务包下载成功后更新考务包下载状态
     */
    UPDATE_ROOM_PACKAGE_STATE_SUCCESS(1, "更新考务包下载状态成功"),
    UPDATE_ROOM_PACKAGE_STATE_FAILED(2, "更新考务包下载状态失败"),


    /**
     * 行为分析上传状态
     */
    POST_BEHAVIOR_ANALYSIS_STATE_SUCCESS(1, "上传行为分析状态成功"),
    POST_BEHAVIOR_ANALYSIS_STATE_FAILED(2, "上传行为分析状态失败"),

    /**
     * 获取试卷授权码成功后通知考务更新试卷授权码状态
     */
    UPDATE_PAPER_AUTHORIZATION_CODE_STATE_SUCCESS(1, "获取试卷授权码成功后通知考务更新试卷授权码状态成功"),

    /**
     * 更新基础包文件下载状态
     */
    UPDATE_BASE_DATA_STATE_SUCCESS(1, "更新基础包文件下载状态成功"),
    UPDATE_BASE_DATA_STATE_FAILED(2, "更新基础包文件下载状态失败"),

    /**
     * 试卷包下载成功后更新试卷包下载状态
     */
    UPDATE_PAPER_DATA_STATE_SUCCESS(1, "试卷包下载成功后更新试卷包下载状态成功"),
    UPDATE_PAPER_DATA_STATE_FAILED(2, "试卷包下载成功后更新试卷包下载状态失败"),

    /**
     * 校验考试结果是否上传成功
     */
    VERIFY_RESULT_SUCCESS(1, "校验考试结果通过"),
    VERIFY_RESULT_FAILED(2, "校验考试结果不通过"),
    VERIFY_RESULT_EXCEPTION(0, "校验考试结果异常"),

    /**
     * 获取考生信息(在线添加考生)
     */
    GET_CANDIDATE_INFO_SUCCESS(0, "获取考生信息(在线添加考生)成功"),
    GET_CANDIDATE_INFO_NOT_FOUND(1, "未找到考生信息"),
    GET_CANDIDATE_INFO_NOT_CURRENT_PLACE(2, "考生不是本考点考生，无法转移"),
    GET_CANDIDATE_INFO_NOT_CURRENT_TIME(3, "考生不是本批次考生，无法转移"),
    GET_CANDIDATE_INFO_IS_CURRENT_ROOM(4, "本考场考生，无需转移"),
    GET_CANDIDATE_INFO_EXCEPTION(-1, "异常"),
    GET_CANDIDATE_INFO_EXAM_TYPE(1, "适用批次类型"),

    /**
     * 下载测试项清单
     */
    GET_TEST_INVENTORY_NOT_FOUND(1, "暂无测试项清单数据"),
    GET_TEST_INVENTORY_SUCCESS(0, "下载测试项清单成功"),

    /**
     * 更新下载模拟测试项清单结果
     */
    UPDATE_TEST_INVENTORY_STATE_SUCCESS(1, "更新下载模拟测试项清单结果成功"),
    UPDATE_TEST_INVENTORY_STATE_FAILED(2, "更新下载模拟测试项清单结果失败"),

    /**
     * 上传模拟测试报告
     */
    UPLOAD_TEST_REPORT_SUCCESS(1, "上传模拟测试报告成功"),
    UPLOAD_TEST_REPORT_FAILED(2, "上传模拟测试报告失败"),

    /**
     * 上传封场信息
     */
    UPDATE_CLOSURE_SUCCESS(1, "上传封场信息成功"),
    UPDATE_CLOSURE_FAILED(2, "上传封场信息失败"),

    /**
     * 获取上传监考机配置备份信息地址
     */
    GET_MONITOR_SETTING_BACKUP_PATH_SUCCESS(1, "获取上传监考机配置备份信息地址成功"),
    GET_MONITOR_SETTING_BACKUP_PATH_FAILED(2, "获取上传监考机配置备份信息地址失败"),

    /**
     * 更新上传监考端配置备份信息状态
     */
    UPDATE_MONITOR_SETTING_BACKUP_STATE_SUCCESS(1, "更新上传监考端配置备份信息状态成功"),
    UPDATE_MONITOR_SETTING_BACKUP_STATE_FAILED(2, "更新上传监考端配置备份信息状态失败"),

    /**
     * 下载监考端配置备份信息
     */
    GET_MONITOR_SETTING_SUCCESS(1, "可以下载监考端配置备份信息"),
    GET_MONITOR_SETTING_ROOM_NOT_FOUND(2, "未找到监考端配置备份信息相应的考场，不能下载"),
    GET_MONITOR_SETTING_BACKUP_NOT_FOUND(3, "考场还未备份过，不能下载"),

    /**
     * 更新下载监考端配置备份信息状态
     */
    UPDATE_MONITOR_SETTING_BACKUP_DOWNLOAD_STATE_SUCCESS(1, "更新下载监考端配置备份信息状态成功"),
    UPDATE_MONITOR_SETTING_BACKUP_DOWNLOAD_STATE_FAILED(2, "更新下载监考端配置备份信息状态失败"),

    /**
     * 同步考试数据包
     */
    SYNC_EXAM_PACKAGE_BASE_DATA_PACKAGE_CHANGED(1, "基础包已变更"),
    SYNC_EXAM_PACKAGE_BASE_DATA_PACKAGE_NOT_CHANGE(0, "基础包未变更"),

    /**
     * 异地备份数据上传结果
     */
    UPDATE_BACKUP_STATE_SUCCESS(1, "异地备份成功"),
    UPDATE_BACKUP_STATE_FAILED(0, "异地备份失败"),

    ;

    private final int result;
    private final String remark;

    GCEResultEnum(int result, String remark) {
        this.result = result;
        this.remark = remark;
    }

}
